Sintassi:
.method method_name(param1, param2,...)
-- variable declaration --
-- method contents --
.end-methodL'indirizzo iniziale (del 1° byte) del sottoprogramma viene aggiunto nell'aria della Constant Pool e puņ essere referenziato tramite il nome del metodo (INVOKEVIRTUAL method_name).
I parametri del sottoprogramma vengono dichiarati tra parentesi separati da virgole.
Per consentire la chiamata corretta ad un sottoprogramma e l'eventuale uso del valore restituito č necessario che il chiamante preveda nel suo codice le seguenti istruzioni:
caricamento nello stack di OBJERF (ad esempio tramite una LDC_W o BIPUSH usate con un valore qualsiasi). Tale operazione serve per riservare in memoria lo spazio relativo al valore restituito dal sottoprogramma. In Assembly IJVM, il valore caricato viene ignorato e sovrascritto alla prima chiamata del sottoprogramma.
caricamento nello stack dei parametri del sottoprogramma nell'ordine indicato nella dichiarazione del sottoprogramma stesso (ILOAD param1, ILOAD param2 ...).
chiamata del sottoprogramma tramite INVOKEVIRTUAL method_name.
N.B. Se il chiamante fa uso del valore restituito, questo, al termine del sottoprogramma, deve trovarsi in cima allo stack.
L'insieme delle due direttive:
.method method_name(param1, param2, ...)
.var
........
.end-var
viene utilizzato dall'assemblatore per "costruire" il descrittore del sottoprogramma previsto per la corretta esecuzione della INVOKEVIRTUAL.